জাভাস্ক্রিপ্ট বিগইন্ট (JS BigInt)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট সংখ্যা, গণিত ও তারিখ (JS Number, Arithmatic & Date) |
311
311

জাভাস্ক্রিপ্ট বিগইন্ট (JS BigInt)

জাভাস্ক্রিপ্টে BigInt একটি নতুন প্রিমিটিভ ডেটা টাইপ, যা খুব বড় সংখ্যাগুলো ধারণ করতে ব্যবহৃত হয়। এটি ES2020 (ECMAScript 2020) এ পরিচিতি লাভ করে এবং জাভাস্ক্রিপ্টের Number টাইপের সীমাবদ্ধতাগুলোকে কাটিয়ে ওঠার জন্য ডিজাইন করা হয়েছে। BigInt দিয়ে আপনি এমন বড় সংখ্যা পরিচালনা করতে পারবেন যা Number.MAX_SAFE_INTEGER এর থেকেও বড়।


বিগইন্ট কী?

BigInt হলো একটি প্রিমিটিভ ডেটা টাইপ যা জাভাস্ক্রিপ্টে অত্যন্ত বড় পূর্ণসংখ্যা (integer) ধারণ করতে সক্ষম। Number টাইপের সংখ্যাগুলো সাধারণত ৫৩ বিট পর্যন্ত সঠিকভাবে প্রতিনিধিত্ব করতে পারে, যার মানে হল Number.MAX_SAFE_INTEGER হল ৯,০০০,০০০,০০০,০০০,০০০। এই সীমার বাইরে যদি সংখ্যা ব্যবহৃত হয়, তাহলে তা সঠিকভাবে প্রতিনিধিত্ব করা সম্ভব নয়। BigInt এই সীমা ছাড়িয়ে যাওয়ার পরেও সঠিক মান প্রদান করে।


বিগইন্ট তৈরি করা

BigInt তৈরি করার দুটি প্রধান পদ্ধতি রয়েছে:

n সাফেক্স ব্যবহার করে

একটি সংখ্যার শেষে n যুক্ত করে BigInt তৈরি করা যায়।

const bigNumber = 123456789012345678901234567890n;
console.log(bigNumber);  // আউটপুট: 123456789012345678901234567890n

BigInt() কনস্ট্রাক্টর ব্যবহার করে

BigInt() ফাংশন ব্যবহার করে সংখ্যাকে BigInt এ রূপান্তর করা যায়।

const bigNumber = BigInt("123456789012345678901234567890");
console.log(bigNumber);  // আউটপুট: 123456789012345678901234567890n

বিগইন্ট এর বৈশিষ্ট্য

অগ্রিম নির্ভুলতা (Arbitrary Precision)

BigInt দিয়ে আপনি অত্যন্ত বড় সংখ্যা সঠিকভাবে পরিচালনা করতে পারেন, যা Number টাইপের সীমাবদ্ধতার বাইরে।

const big1 = 9007199254740991n; // Number.MAX_SAFE_INTEGER
const big2 = 9007199254740992n;

console.log(big1 + 1n);  // আউটপুট: 9007199254740992n
console.log(big2 + 1n);  // আউটপুট: 9007199254740993n

প্রিমিটিভ টাইপ

BigInt একটি প্রিমিটিভ ডেটা টাইপ, যা Number, String, Boolean ইত্যাদির মতোই।

const big = 123456789012345678901234567890n;
console.log(typeof big);  // আউটপুট: "bigint"

ইটারেটর প্রোটোকল সমর্থন

BigInt ইটারেবল বা ইটারেটর হিসেবে ব্যবহৃত হতে পারে না, অর্থাৎ এটি for...of লুপে সরাসরি ব্যবহার করা যায় না।

const big = 123456789012345678901234567890n;

// এটা কাজ করবে না:
for (const digit of big) {
    console.log(digit);
}
// TypeError: big is not iterable

বিগইন্ট এর ব্যবহার

বড় সংখ্যার গণনা

BigInt বড় সংখ্যার গণনা বা হিসাবের ক্ষেত্রে অত্যন্ত উপকারী।

const factorial = (n) => {
    let result = 1n;
    for (let i = 2n; i <= n; i++) {
        result *= i;
    }
    return result;
};

console.log(factorial(30n));  
// আউটপুট: 265252859812191058636308480000000n

ক্রিপ্টোগ্রাফি

ক্রিপ্টোগ্রাফি এবং নিরাপত্তা সম্পর্কিত কাজগুলোতে বড় সংখ্যার প্রয়োজন হয়, যেখানে BigInt অপরিহার্য।

const prime1 = 32416190071n;
const prime2 = 32416187567n;

const product = prime1 * prime2;
console.log(product);  // আউটপুট: 1050421056735679n

ডেটাবেস আইডি

ডেটাবেসের আইডিগুলো সাধারণত বড় সংখ্যা হতে পারে, যেগুলো BigInt দিয়ে সঠিকভাবে পরিচালনা করা যায়।

const userId = 9007199254740993n;
console.log(userId);  // আউটপুট: 9007199254740993n

বিগইন্ট এর সীমাবদ্ধতা

মিশ্র অপারেশন

BigInt এবং Number টাইপের মধ্যে সরাসরি অপারেশন করা যায় না। এই ধরনের অপারেশন করলে ত্রুটি (error) ঘটতে পারে।

const big = 12345678901234567890n;
const num = 10;

console.log(big + num);  // TypeError: Cannot mix BigInt and other types

ফাংশন সমর্থন

কিছু বিল্ট-ইন জাভাস্ক্রিপ্ট ফাংশন বা মেথড BigInt সমর্থন করে না।

const big = 12345678901234567890n;

console.log(Math.sqrt(big));  // TypeError: Cannot convert a BigInt value to a number

JSON সমর্থন

BigInt JSON এ সরাসরি সমর্থিত নয়। JSON.stringify() ব্যবহার করলে ত্রুটি ঘটতে পারে।

const big = 12345678901234567890n;

console.log(JSON.stringify({ number: big }));
// TypeError: Do not know how to serialize a BigInt

বিগইন্ট এর উদাহরণ

বিগইন্টের সাথে গাণিতিক অপারেশন

const a = 100000000000000000000n;
const b = 200000000000000000000n;

const sum = a + b;
const difference = b - a;
const product = a * b;
const quotient = b / a;

console.log(sum);         // আউটপুট: 300000000000000000000n
console.log(difference);  // আউটপুট: 100000000000000000000n
console.log(product);     // আউটপুট: 20000000000000000000000000000000000000000n
console.log(quotient);    // আউটপুট: 2n

বিগইন্টের সাথে তুলনা

const big1 = 9007199254740991n; // Number.MAX_SAFE_INTEGER
const big2 = 9007199254740992n;

console.log(big1 < big2);  // আউটপুট: true
console.log(big1 === 9007199254740991n);  // আউটপুট: true
console.log(big1 === 9007199254740991);   // আউটপুট: false

বিগইন্টের সাথে স্ট্রিং কনভার্শন

const big = 12345678901234567890n;

// স্ট্রিং এ রূপান্তর
const bigStr = big.toString();
console.log(bigStr);  // আউটপুট: "12345678901234567890"

// স্ট্রিং থেকে বিগইন্ট
const parsedBig = BigInt(bigStr);
console.log(parsedBig);  // আউটপুট: 12345678901234567890n

সারাংশ

জাভাস্ক্রিপ্টের BigInt টাইপটি অত্যন্ত বড় পূর্ণসংখ্যা (integer) ধারণ করতে সক্ষম, যা Number টাইপের সীমাবদ্ধতাকে কাটিয়ে ওঠে। এটি বড় সংখ্যার গাণিতিক হিসাব, ক্রিপ্টোগ্রাফি, এবং ডেটাবেস আইডির মতো ক্ষেত্রে অপরিহার্য। BigInt এর মাধ্যমে আপনি অগ্রিম নির্ভুলতা সহকারে বড় সংখ্যার সাথে কাজ করতে পারেন, তবে এর কিছু সীমাবদ্ধতা রয়েছে যেমন Number টাইপের সাথে মিশ্র অপারেশন করা যায় না এবং JSON সমর্থন নেই। BigInt এর সঠিক ব্যবহার নিশ্চিত করতে ডেভেলপারদের উচিত এর বৈশিষ্ট্য এবং সীমাবদ্ধতাগুলো ভালোভাবে বোঝা। এর মাধ্যমে জাভাস্ক্রিপ্টে বড় সংখ্যার সাথে কাজ করা আরও সহজ এবং কার্যকর হয়ে ওঠে, যা উন্নত এবং নির্ভরযোগ্য অ্যাপ্লিকেশন তৈরি করতে সহায়ক।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion
;